﻿using Shop.Model.DB;
using Shop.RemoteModel;
using Shop.RemoteModel.Activity.Model;
using WeDonekRpc.Model;

namespace Shop.Collect
{
    public interface IActivityCollect
    {
        bool OffShelf ( DBShopActivity activity );
        long Add ( ActivityAdd add );
        bool AuditNoPass ( DBShopActivity activity, long empId, string opinion );
        bool AuditPass ( DBShopActivity activity, long empId );
        void CheckStatus ( long id, ActivityStatus status );
        void Delete ( DBShopActivity activity );
        DBShopActivity Get ( long id );
        Result Get<Result> ( long id ) where Result : class, new();
        Dictionary<long, string> GetActivityName ( long[] id );
        string GetActivityName ( long id );
        ValidActivityDto[] GetValidActivity ( long skuId, DateTime begin, DateTime end );
        Result[] Query<Result> ( ActivityQueryParam query, IBasicPage paging, out int count ) where Result : class;
        bool Set ( DBShopActivity activity, ActivitySet set );
        bool SubmitAudit ( DBShopActivity activity );
        Result[] Gets<Result> ( long[] ids ) where Result : class;
    }
}